import java.util.*;
public class Main {
    /*给定一个 排序好 的数组 arr ，两个整数 k 和 x ，
    从数组中找到最靠近 x（两数之差最小）的 k 个数。返回的结果必须要是按升序排好的。
    整数 a 比整数 b 更接近 x 需要满足：
            |a - x| < |b - x| 或者
         |a - x| == |b - x| 且 a < b*/
    public static List<Integer> seeknumber(int[] arr,int k,int x) {
        int n=arr.length;
        List<Integer> list=new ArrayList<>();
        int left=0;
        int right=n-1;
        while(left<right){
            if(right-left+1==k){
                break;
            }
            if((Math.abs(arr[left]-x)<Math.abs(arr[right]-x))||Math.abs(arr[left]-x)==Math.abs(arr[right]-x)){
                right--;
            }
            else
                left++;
        }
        for(int i=left;i<=right;i++){
            list.add(arr[i]);
        }
        return list;
    }
    public static void main(String[] args) {
     Scanner sc=new Scanner(System.in);
     int n=sc.nextInt();
     int[] arr=new int[n];
     for(int i=0;i<n;i++){
         arr[i]=sc.nextInt();
     }
     int k=sc.nextInt();
     int x=sc.nextInt();
     List<Integer> answer=seeknumber(arr,k,x);
     for(int i=0;i<answer.size();i++){
         System.out.print(answer.get(i)+" ");
     }
    }
}